The present invention relates to the information technology field. Particularly, the present invention relates to the test of notification-based software applications in a service oriented data processing environment.
Services oriented data processing environments have become increasingly popular in recent years. Generally speaking, a service consists of a stand-alone basic task. The service may be requested through a well-defined interface, which is independent of its underlying implementation. The services can then be combined at will into complex software applications. This promotes the reuse and the interconnection of the existing services, even among different platforms, thereby strongly reducing the development costs and allowing deploying dynamic solutions. The resulting software applications are very efficient (since they can exploit different techniques each one optimized for a specific situation), flexible (since it is possible to change the implementation of any service with no impact on the whole software application) and readily expandable (since new functionalities can be added as soon as the corresponding services are available).
A typical service oriented environment is the one conforming to the “Service Oriented Architecture (SOA)” standard. For example, a SOA environment can be one as implemented in the “IBM SOA Foundation” by International Business Machines Corporation (IBM). Commonly, the SOA is deployed with the technology of web services. Particularly, the web services are formally defined in a public document, which provides an abstract definition thereof and a concrete definition of their binding to specific transmission protocols. An example of a transmission protocol that is commonly used to implement the web services is the “Simple Object Access Protocol (SOAP)”. Different specifications (denoted with the prefix “WS-”) are also available to standardize specific aspects of the web services.
In this context, a typical pattern for interaction with the services is the one based on notifications. Particularly, in the notification-based pattern the services that wish to consume information register dynamically with one or more other services that are capable of distributing it. The latter services then transmit the information individually to the services that are registered to receive it. In this way, it is possible to disseminate information to any services without the need of any prior knowledge thereof. For example, the notification-based pattern is used in message middleware domains, in system management domains, and the like. Particularly, in the case of web services the notification-based pattern is defined in a corresponding specification (referred to as “WS-Notification”).
However, the extreme flexibility and dynamism of the services make it very difficult to test the software applications based thereon (in order to verify whether they behave correctly as expected). Indeed, the continual introduction of new standards and the high number of specifications that are available for the services dramatically increase the complexity of a corresponding test process.
This requires infrastructures (to run the test process) that become more and more expensive. Moreover, the definition of the test process and its running involve a heavy human intervention. Therefore, the process is far from optimal and in any case its quality strongly depends on personal experience.
All of the above has a detrimental impact on the cost of the test process. This hinders the extensive application of the test process, with a negative repercussion on the reliability of the software applications.